package com.zg.autoform.service;

import com.zg.autoform.vo.DataSelectVo;
import com.zg.autoform.web.req.*;
import com.zg.autoform.web.vo.CascadeInfoVo;
import com.zg.common.core.R;

import java.util.List;

/**
 * 数据选择器服务接口
 * @author zg
 */
public interface SelectService {

    /**
     * 新增数据选择器
     */
    R<CascadeInfoVo> add(SelectAddReq req);

    /**
     * 更新数据选择器
     */
    R<CascadeInfoVo> update(SelectUpdateReq req);

    /**
     * 删除数据选择器
     */
    R<?> delete(SelectDeleteReq req);

    /**
     * 获取除当前表单外的所有数据选择器
     */
    R<List<DataSelectVo>> listDataSelects(ListDataSelectsReq req);

    /**
     * 视图绑定数据选择器
     */
    R<?> viewBindSelect(ViewBindSelectReq req);

    /**
     * 保存级联信息
     */
    R<CascadeInfoVo> saveCascadeInfo(CascadeSelectReq req);

    /**
     * 删除级联信息
     */
    R<CascadeInfoVo> removeCascadeInfo(RemoveCascadeInfoReq req);

    /**
     * 获取级联树结构
     */
    R<List<CascadeInfoVo>> getCascadeTree(GetCascadeTreeReq req);
}
